package com.cgnpc.cuddemo.workbench.application;

import cn.com.cgnpc.aep.bizcenter.appcenter.sdk.result.ApiResult;

import java.util.HashMap;
import java.util.Map;

/******************************
 * 用途说明: 中台流程相关
 * 作者姓名: pxmwrya
 * 创建时间: 2019/06/17 11:12
 ******************************/
public interface IBpmCenterApplication {
    /**********************************
     * 用途说明: 获取一个流程的初始节点
     * 参数说明 procId
     * 返回值说明:
     ***********************************/
    ApiResult getStartAct(String procId) throws Exception;

    /**********************************
     * 用途说明: 获取流程实例所在节点的下一节点
     * 参数说明 procId
     * 参数说明 actMetadata
     * 返回值说明:
     ***********************************/
    ApiResult getNextNode(String procId,String actMetadata) throws Exception;

    /**********************************
     * 用途说明: 获取流程当前处理人
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult queryApprovePerson(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 获取流程下一节点处理人
     * 参数说明 procId
     * 参数说明 node
     * 返回值说明:
     ***********************************/
    ApiResult getApprovePerson(String procId, String node) throws Exception;

    /**********************************
     * 用途说明: 获取下一步处理人
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getNextApprovePerson(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 获取流程实例所在节点的退回节点
     * 参数说明 procId
     * 参数说明 actMetadata
     * 返回值说明:
     ***********************************/
    ApiResult getBackNode(String procId,String actMetadata) throws Exception;

    /**********************************
     * 用途说明: 发起流程
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult startProcess(Map map) throws Exception;

    /**********************************
     * 用途说明: 通过流程全名获取流程集
     * 参数说明 fullName
     * 返回值说明:
     ***********************************/
    ApiResult getProcSetByFullName(String fullName) throws Exception;

    /**********************************
     * 用途说明: 获取待办列表
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult getWorkListItems(String params) throws Exception;

    /**********************************
     * 用途说明: 获得已办
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult getDoneTaskList(String params) throws Exception;

    /**********************************
     * 用途说明: 流程实例记录
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult getWorkListItemTrace(Map map ) throws Exception;

    /**********************************
     * 用途说明: 提交流程
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult submitworklistitem(Map map) throws Exception;

    /**********************************
     * 用途说明: 获取所有节点信息
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult getWFConfigActivity(Map map) throws Exception;

    /**********************************
     * 用途说明: 获取流程信息
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult getProcessInfo(Map map) throws Exception;

    /**********************************
     * 用途说明: 获取流程线信息
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult getWFConfigLine(String params) throws Exception;

    /**********************************
     * 用途说明:
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult getWFConfigProc(String params) throws Exception;

    /**********************************
     * 用途说明:
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult getWFConfigProcSet(Map map) throws Exception;

    /**********************************
     * 用途说明:
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult getProcessInfoList(String params) throws Exception;

    /**********************************
     * 用途说明:
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult getBackProcessInfoList(String params) throws Exception;

    /**********************************
     * 用途说明: 作废接口
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult cancelProc(String params) throws Exception;

    /**********************************
     * 用途说明: 回调接口
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult collBack(String params) throws Exception;

    /**********************************
     * 用途说明: 退回接口
     * 参数说明 map
     * 返回值说明:
     ***********************************/
    ApiResult rollBackAction(Map map) throws Exception;

    /**********************************
     * 用途说明: 撤销接口
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult withdraw(String params) throws Exception;

    /**********************************
     * 用途说明: 流程中心附件运行状态
     * 参数说明
     * 返回值说明:
     ***********************************/
    ApiResult imsBpmFileStatus() throws Exception;

    /**********************************
     * 用途说明:流程中心健康检查
     * 参数说明
     * 返回值说明:
     ***********************************/
    ApiResult healthCheck() throws Exception;

    /**********************************
     * 用途说明: 获得代理列表
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getDelegateList(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 新增全部代理
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult addDelegates(String params) throws Exception;

    /**********************************
     * 用途说明: 新增代理
     * 参数说明 params
     * 返回值说明:
     ***********************************/
    ApiResult addDelegate(String params) throws Exception;

    /**********************************
     * 用途说明: 待阅（不限流程状态）
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getCopySendItemsListSecond(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 抄送(这个流程必须结束了)，产生待阅
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult copySendWorkListItemSecond(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 抄送
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult copySendWorkListItem(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 获取代理用户结果
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getDelegateListByUser(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 待阅 (抄送列表)
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getCopySendItemsList(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 待阅提交
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult copysenditemsubmitSecond(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 删除代理用户设置
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult delDelegateUserSetting(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 删除代理设置
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult deldelegatesetting(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 分页查询我的草稿列表
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getDraftListByPaging(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 保存草稿
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult addDraft(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 删除我的草稿
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult deleteMyDraft(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 更新我的草稿
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult updateDraft(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 提交业务数据以及草稿  存在草稿的情况  业务数据改变状态即可
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getBpmPscActInfo(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 获取上一审批信息 通过查询某个流程实例的已办
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    HashMap getLasApproveInfo(Map paramsMap) throws Exception;

    /**********************************
     * 用途说明: 获取已阅任务列表
     * 参数说明 paramsMap
     * 返回值说明:
     ***********************************/
    ApiResult getcopysenditemlogs(Map paramsMap) throws Exception;
}